package com.yootoo.extpmml;

import ml.dmlc.xgboost4j.java.Booster;
import ml.dmlc.xgboost4j.java.DMatrix;
import ml.dmlc.xgboost4j.java.XGBoost;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class FinRiskModelV8C1 {
    public static void main(String[] args) throws Exception {
        // header
        String s1 = "user_id,task_id,no_dial_day_item_1m,no_dial_day_item_3m,no_dial_day_item_6m,no_dial_day_avg_item_3m,no_dial_day_avg_item_6m,power_off_day_item_1m,power_off_day_item_3m,power_off_day_item_6m,power_off_day_avg_item_3m,power_off_day_avg_item_6m,no_call_day_item_1m,no_call_day_item_3m,no_call_day_item_6m,no_call_day_avg_item_3m,no_call_day_avg_item_6m,call_cnt_item_1m,call_cnt_item_3m,call_cnt_item_6m,call_cnt_avg_item_3m,call_cnt_avg_item_6m,call_day_item_1m,call_day_item_3m,call_day_item_6m,call_day_avg_item_3m,call_day_avg_item_6m,peer_loc_cnt_item_1m,peer_loc_cnt_item_3m,peer_loc_cnt_item_6m,peer_loc_cnt_avg_item_3m,peer_loc_cnt_avg_item_6m,continue_power_off_cnt_item_1m,continue_power_off_cnt_item_3m,continue_power_off_cnt_item_6m,call_time_item_1m,call_time_item_3m,call_time_item_6m,call_time_avg_item_3m,call_time_avg_item_6m,net_used_item_1m,net_used_item_3m,net_used_item_6m,net_used_avg_item_3m,net_used_avg_item_6m,max_power_on_day_item_1m,max_power_on_day_item_3m,max_power_on_day_item_6m,peer_num_cnt_item_1m,peer_num_cnt_item_3m,peer_num_cnt_item_6m,peer_num_cnt_avg_item_3m,peer_num_cnt_avg_item_6m,dial_time_item_1m,dial_time_item_3m,dial_time_item_6m,dial_time_avg_item_3m,dial_time_avg_item_6m,dial_cnt_item_1m,dial_cnt_item_3m,dial_cnt_item_6m,dial_cnt_avg_item_3m,dial_cnt_avg_item_6m,sms_cnt_item_1m,sms_cnt_item_3m,sms_cnt_item_6m,sms_cnt_avg_item_3m,sms_cnt_avg_item_6m,arrearage_risk_6m,binding_risk,is_name_and_idcard_in_finance_black,is_name_and_idcard_in_court_black,mobile_silence_6m,mobile_silence_3m,arrearage_risk_3m,is_name_and_mobile_in_finance_black,contact_credit_card_score,contact_bank_score,phone_power_off_score,contact_night_score,contact_loan_score,contact_each_other_score,contact_collection_score,contact_110_score,contact_120_score,contact_lawyer_score,contact_court_score,contact_macao_score,regular_circle_score,call_duration_detail_3m_afternoon_total_cnt,call_duration_detail_3m_afternoon_uniq_num_cnt,call_duration_detail_3m_afternoon_total_time,call_duration_detail_3m_afternoon_dial_cnt,call_duration_detail_3m_afternoon_dialed_cnt,call_duration_detail_3m_afternoon_dial_time,call_duration_detail_3m_afternoon_dialed_time,call_duration_detail_3m_daybreak_total_cnt,call_duration_detail_3m_daybreak_uniq_num_cnt,call_duration_detail_3m_daybreak_total_time,call_duration_detail_3m_daybreak_dial_cnt,call_duration_detail_3m_daybreak_dialed_cnt,call_duration_detail_3m_daybreak_dial_time,call_duration_detail_3m_daybreak_dialed_time,call_duration_detail_3m_dusk_total_cnt,call_duration_detail_3m_dusk_uniq_num_cnt,call_duration_detail_3m_dusk_total_time,call_duration_detail_3m_dusk_dial_cnt,call_duration_detail_3m_dusk_dialed_cnt,call_duration_detail_3m_dusk_dial_time,call_duration_detail_3m_dusk_dialed_time,call_duration_detail_3m_evening_total_cnt,call_duration_detail_3m_evening_uniq_num_cnt,call_duration_detail_3m_evening_total_time,call_duration_detail_3m_evening_dial_cnt,call_duration_detail_3m_evening_dialed_cnt,call_duration_detail_3m_evening_dial_time,call_duration_detail_3m_evening_dialed_time,call_duration_detail_3m_forenoon_total_cnt,call_duration_detail_3m_forenoon_uniq_num_cnt,call_duration_detail_3m_forenoon_total_time,call_duration_detail_3m_forenoon_dial_cnt,call_duration_detail_3m_forenoon_dialed_cnt,call_duration_detail_3m_forenoon_dial_time,call_duration_detail_3m_forenoon_dialed_time,call_duration_detail_3m_midnight_total_cnt,call_duration_detail_3m_midnight_uniq_num_cnt,call_duration_detail_3m_midnight_total_time,call_duration_detail_3m_midnight_dial_cnt,call_duration_detail_3m_midnight_dialed_cnt,call_duration_detail_3m_midnight_dial_time,call_duration_detail_3m_midnight_dialed_time,call_duration_detail_3m_morning_total_cnt,call_duration_detail_3m_morning_uniq_num_cnt,call_duration_detail_3m_morning_total_time,call_duration_detail_3m_morning_dial_cnt,call_duration_detail_3m_morning_dialed_cnt,call_duration_detail_3m_morning_dial_time,call_duration_detail_3m_morning_dialed_time,call_duration_detail_3m_noon_total_cnt,call_duration_detail_3m_noon_uniq_num_cnt,call_duration_detail_3m_noon_total_time,call_duration_detail_3m_noon_dial_cnt,call_duration_detail_3m_noon_dialed_cnt,call_duration_detail_3m_noon_dial_time,call_duration_detail_3m_noon_dialed_time,call_duration_detail_6m_afternoon_total_cnt,call_duration_detail_6m_afternoon_uniq_num_cnt,call_duration_detail_6m_afternoon_total_time,call_duration_detail_6m_afternoon_dial_cnt,call_duration_detail_6m_afternoon_dialed_cnt,call_duration_detail_6m_afternoon_dial_time,call_duration_detail_6m_afternoon_dialed_time,call_duration_detail_6m_daybreak_total_cnt,call_duration_detail_6m_daybreak_uniq_num_cnt,call_duration_detail_6m_daybreak_total_time,call_duration_detail_6m_daybreak_dial_cnt,call_duration_detail_6m_daybreak_dialed_cnt,call_duration_detail_6m_daybreak_dial_time,call_duration_detail_6m_daybreak_dialed_time,call_duration_detail_6m_dusk_total_cnt,call_duration_detail_6m_dusk_uniq_num_cnt,call_duration_detail_6m_dusk_total_time,call_duration_detail_6m_dusk_dial_cnt,call_duration_detail_6m_dusk_dialed_cnt,call_duration_detail_6m_dusk_dial_time,call_duration_detail_6m_dusk_dialed_time,call_duration_detail_6m_evening_total_cnt,call_duration_detail_6m_evening_uniq_num_cnt,call_duration_detail_6m_evening_total_time,call_duration_detail_6m_evening_dial_cnt,call_duration_detail_6m_evening_dialed_cnt,call_duration_detail_6m_evening_dial_time,call_duration_detail_6m_evening_dialed_time,call_duration_detail_6m_forenoon_total_cnt,call_duration_detail_6m_forenoon_uniq_num_cnt,call_duration_detail_6m_forenoon_total_time,call_duration_detail_6m_forenoon_dial_cnt,call_duration_detail_6m_forenoon_dialed_cnt,call_duration_detail_6m_forenoon_dial_time,call_duration_detail_6m_forenoon_dialed_time,call_duration_detail_6m_midnight_total_cnt,call_duration_detail_6m_midnight_uniq_num_cnt,call_duration_detail_6m_midnight_total_time,call_duration_detail_6m_midnight_dial_cnt,call_duration_detail_6m_midnight_dialed_cnt,call_duration_detail_6m_midnight_dial_time,call_duration_detail_6m_midnight_dialed_time,call_duration_detail_6m_morning_total_cnt,call_duration_detail_6m_morning_uniq_num_cnt,call_duration_detail_6m_morning_total_time,call_duration_detail_6m_morning_dial_cnt,call_duration_detail_6m_morning_dialed_cnt,call_duration_detail_6m_morning_dial_time,call_duration_detail_6m_morning_dialed_time,call_duration_detail_6m_noon_total_cnt,call_duration_detail_6m_noon_uniq_num_cnt,call_duration_detail_6m_noon_total_time,call_duration_detail_6m_noon_dial_cnt,call_duration_detail_6m_noon_dialed_cnt,call_duration_detail_6m_noon_dial_time,call_duration_detail_6m_noon_dialed_time,unpaid_month_cnt_item_1m,unpaid_month_cnt_item_3m,unpaid_month_cnt_item_6m,continue_recharge_month_cnt_item_1m,continue_recharge_month_cnt_item_3m,continue_recharge_month_cnt_item_6m,live_month_cnt_item_1m,live_month_cnt_item_3m,live_month_cnt_item_6m,110_call_cnt_1m,110_call_cnt_3m,110_call_cnt_6m,110_avg_call_cnt_3m,110_avg_call_cnt_6m,110_call_time_1m,110_call_time_3m,110_call_time_6m,110_avg_call_time_3m,110_avg_call_time_6m,110_call_dial_cnt_1m,110_call_dial_cnt_3m,110_call_dial_cnt_6m,110_avg_call_dial_cnt_3m,110_avg_call_dial_cnt_6m,110_call_dial_time_1m,110_call_dial_time_3m,110_call_dial_time_6m,110_avg_call_dial_time_3m,110_avg_call_dial_time_6m,110_call_dialed_cnt_3m,110_call_dialed_cnt_6m,110_avg_call_dialed_cnt_3m,110_call_dialed_time_1m,110_call_dialed_time_3m,110_call_dialed_time_6m,110_avg_call_dialed_time_3m,110_avg_call_dialed_time_6m,120_call_cnt_1m,120_call_cnt_3m,120_call_cnt_6m,120_avg_call_cnt_3m,120_avg_call_cnt_6m,120_call_time_1m,120_call_time_3m,120_call_time_6m,120_avg_call_time_3m,120_avg_call_time_6m,120_call_dial_cnt_1m,120_call_dial_cnt_3m,120_call_dial_cnt_6m,120_avg_call_dial_cnt_3m,120_avg_call_dial_cnt_6m,120_call_dial_time_1m,120_call_dial_time_3m,120_call_dial_time_6m,120_avg_call_dial_time_3m,120_avg_call_dial_time_6m,120_call_dialed_cnt_1m,120_call_dialed_cnt_3m,120_call_dialed_cnt_6m,120_avg_call_dialed_cnt_3m,120_avg_call_dialed_cnt_6m,120_call_dialed_time_3m,120_call_dialed_time_6m,120_avg_call_dialed_time_3m,120_avg_call_dialed_time_6m,agency_call_cnt_1m,agency_call_cnt_3m,agency_call_cnt_6m,agency_avg_call_cnt_3m,agency_avg_call_cnt_6m,agency_call_time_1m,agency_call_time_3m,agency_call_time_6m,agency_avg_call_time_3m,agency_avg_call_time_6m,agency_call_dial_cnt_1m,agency_call_dial_cnt_3m,agency_call_dial_cnt_6m,agency_avg_call_dial_cnt_3m,agency_avg_call_dial_cnt_6m,agency_call_dial_time_1m,agency_call_dial_time_3m,agency_call_dial_time_6m,agency_avg_call_dial_time_3m,agency_avg_call_dial_time_6m,agency_call_dialed_cnt_1m,agency_call_dialed_cnt_3m,agency_call_dialed_cnt_6m,agency_avg_call_dialed_cnt_3m,agency_avg_call_dialed_cnt_6m,agency_call_dialed_time_1m,agency_call_dialed_time_3m,agency_call_dialed_time_6m,agency_avg_call_dialed_time_3m,agency_avg_call_dialed_time_6m,collection_call_cnt_1m,collection_call_cnt_3m,collection_call_cnt_6m,collection_avg_call_cnt_3m,collection_avg_call_cnt_6m,collection_call_time_1m,collection_call_time_3m,collection_call_time_6m,collection_avg_call_time_3m,collection_avg_call_time_6m,collection_call_dial_cnt_1m,collection_call_dial_cnt_3m,collection_call_dial_cnt_6m,collection_avg_call_dial_cnt_3m,collection_avg_call_dial_cnt_6m,collection_call_dial_time_1m,collection_call_dial_time_3m,collection_call_dial_time_6m,collection_avg_call_dial_time_3m,collection_avg_call_dial_time_6m,collection_call_dialed_cnt_1m,collection_call_dialed_cnt_3m,collection_call_dialed_cnt_6m,collection_avg_call_dialed_cnt_3m,collection_avg_call_dialed_cnt_6m,collection_call_dialed_time_1m,collection_call_dialed_time_3m,collection_call_dialed_time_6m,collection_avg_call_dialed_time_3m,collection_avg_call_dialed_time_6m,court_call_cnt_1m,court_call_cnt_3m,court_call_cnt_6m,court_avg_call_cnt_3m,court_avg_call_cnt_6m,court_call_time_1m,court_call_time_3m,court_call_time_6m,court_avg_call_time_3m,court_avg_call_time_6m,court_call_dial_cnt_1m,court_call_dial_cnt_3m,court_call_dial_cnt_6m,court_avg_call_dial_cnt_3m,court_avg_call_dial_cnt_6m,court_call_dial_time_1m,court_call_dial_time_3m,court_call_dial_time_6m,court_avg_call_dial_time_3m,court_avg_call_dial_time_6m,court_call_dialed_cnt_1m,court_call_dialed_cnt_3m,court_call_dialed_cnt_6m,court_avg_call_dialed_cnt_6m,court_call_dialed_time_1m,court_call_dialed_time_3m,court_call_dialed_time_6m,court_avg_call_dialed_time_3m,court_avg_call_dialed_time_6m,credit_card_call_cnt_1m,credit_card_call_cnt_3m,credit_card_call_cnt_6m,credit_card_avg_call_cnt_3m,credit_card_avg_call_cnt_6m,credit_card_call_time_1m,credit_card_call_time_3m,credit_card_call_time_6m,credit_card_avg_call_time_3m,credit_card_avg_call_time_6m,credit_card_call_dial_cnt_1m,credit_card_call_dial_cnt_3m,credit_card_call_dial_cnt_6m,credit_card_avg_call_dial_cnt_3m,credit_card_avg_call_dial_cnt_6m,credit_card_call_dial_time_1m,credit_card_call_dial_time_3m,credit_card_call_dial_time_6m,credit_card_avg_call_dial_time_3m,credit_card_avg_call_dial_time_6m,credit_card_call_dialed_cnt_1m,credit_card_call_dialed_cnt_3m,credit_card_call_dialed_cnt_6m,credit_card_avg_call_dialed_cnt_3m,credit_card_avg_call_dialed_cnt_6m,credit_card_call_dialed_time_1m,credit_card_call_dialed_time_3m,credit_card_call_dialed_time_6m,credit_card_avg_call_dialed_time_3m,credit_card_avg_call_dialed_time_6m,fraud_call_cnt_1m,fraud_call_cnt_3m,fraud_call_cnt_6m,fraud_avg_call_cnt_3m,fraud_avg_call_cnt_6m,fraud_call_time_1m,fraud_call_time_3m,fraud_call_time_6m,fraud_avg_call_time_3m,fraud_avg_call_time_6m,fraud_call_dial_cnt_1m,fraud_call_dial_cnt_3m,fraud_call_dial_cnt_6m,fraud_avg_call_dial_cnt_3m,fraud_avg_call_dial_cnt_6m,fraud_call_dial_time_1m,fraud_call_dial_time_3m,fraud_call_dial_time_6m,fraud_avg_call_dial_time_3m,fraud_avg_call_dial_time_6m,fraud_call_dialed_cnt_1m,fraud_call_dialed_cnt_3m,fraud_call_dialed_cnt_6m,fraud_avg_call_dialed_cnt_3m,fraud_avg_call_dialed_cnt_6m,fraud_call_dialed_time_1m,fraud_call_dialed_time_3m,fraud_call_dialed_time_6m,fraud_avg_call_dialed_time_3m,fraud_avg_call_dialed_time_6m,lawyer_call_cnt_1m,lawyer_call_cnt_3m,lawyer_call_cnt_6m,lawyer_avg_call_cnt_3m,lawyer_avg_call_cnt_6m,lawyer_call_time_1m,lawyer_call_time_3m,lawyer_call_time_6m,lawyer_avg_call_time_3m,lawyer_avg_call_time_6m,lawyer_call_dial_time_3m,lawyer_call_dial_time_6m,lawyer_call_dialed_cnt_1m,lawyer_call_dialed_cnt_6m,lawyer_avg_call_dialed_cnt_3m,lawyer_avg_call_dialed_cnt_6m,lawyer_call_dialed_time_1m,lawyer_call_dialed_time_6m,lawyer_avg_call_dialed_time_3m,lawyer_avg_call_dialed_time_6m,loan_call_cnt_1m,loan_call_cnt_3m,loan_call_cnt_6m,loan_avg_call_cnt_3m,loan_avg_call_cnt_6m,loan_call_time_1m,loan_call_time_3m,loan_call_time_6m,loan_avg_call_time_3m,loan_avg_call_time_6m,loan_call_dial_cnt_1m,loan_call_dial_cnt_3m,loan_call_dial_cnt_6m,loan_avg_call_dial_cnt_3m,loan_avg_call_dial_cnt_6m,loan_call_dial_time_1m,loan_call_dial_time_3m,loan_call_dial_time_6m,loan_avg_call_dial_time_3m,loan_avg_call_dial_time_6m,loan_call_dialed_cnt_1m,loan_call_dialed_cnt_3m,loan_call_dialed_cnt_6m,loan_avg_call_dialed_cnt_3m,loan_avg_call_dialed_cnt_6m,loan_call_dialed_time_1m,loan_call_dialed_time_3m,loan_call_dialed_time_6m,loan_avg_call_dialed_time_3m,loan_avg_call_dialed_time_6m,macao_call_cnt_1m,macao_call_cnt_3m,macao_call_cnt_6m,macao_avg_call_cnt_3m,macao_avg_call_cnt_6m,macao_call_time_1m,macao_call_time_3m,macao_call_time_6m,macao_avg_call_time_3m,macao_avg_call_time_6m,macao_call_dial_cnt_1m,macao_call_dial_cnt_3m,macao_call_dial_cnt_6m,macao_avg_call_dial_cnt_3m,macao_avg_call_dial_cnt_6m,macao_call_dial_time_1m,macao_call_dial_time_3m,macao_call_dial_time_6m,macao_avg_call_dial_time_3m,macao_avg_call_dial_time_6m,macao_call_dialed_cnt_1m,macao_call_dialed_cnt_3m,macao_call_dialed_cnt_6m,macao_avg_call_dialed_cnt_3m,macao_avg_call_dialed_cnt_6m,macao_call_dialed_time_1m,macao_call_dialed_time_3m,macao_call_dialed_time_6m,macao_avg_call_dialed_time_3m,macao_avg_call_dialed_time_6m,nuisance_call_cnt_1m,nuisance_call_cnt_3m,nuisance_call_cnt_6m,nuisance_avg_call_cnt_3m,nuisance_avg_call_cnt_6m,nuisance_call_time_1m,nuisance_call_time_3m,nuisance_call_time_6m,nuisance_avg_call_time_3m,nuisance_avg_call_time_6m,nuisance_call_dial_cnt_1m,nuisance_call_dial_cnt_3m,nuisance_call_dial_cnt_6m,nuisance_avg_call_dial_cnt_3m,nuisance_avg_call_dial_cnt_6m,nuisance_call_dial_time_1m,nuisance_call_dial_time_3m,nuisance_call_dial_time_6m,nuisance_avg_call_dial_time_3m,nuisance_avg_call_dial_time_6m,nuisance_call_dialed_cnt_1m,nuisance_call_dialed_cnt_3m,nuisance_call_dialed_cnt_6m,nuisance_avg_call_dialed_cnt_3m,nuisance_avg_call_dialed_cnt_6m,nuisance_call_dialed_time_1m,nuisance_call_dialed_time_3m,nuisance_call_dialed_time_6m,nuisance_avg_call_dialed_time_3m,nuisance_avg_call_dialed_time_6m,bank_call_cnt_1m,bank_call_cnt_3m,bank_call_cnt_6m,bank_avg_call_cnt_3m,bank_avg_call_cnt_6m,bank_call_time_1m,bank_call_time_3m,bank_call_time_6m,bank_avg_call_time_3m,bank_avg_call_time_6m,bank_call_dial_cnt_1m,bank_call_dial_cnt_3m,bank_call_dial_cnt_6m,bank_avg_call_dial_cnt_3m,bank_avg_call_dial_cnt_6m,bank_call_dial_time_1m,bank_call_dial_time_3m,bank_call_dial_time_6m,bank_avg_call_dial_time_3m,bank_avg_call_dial_time_6m,bank_call_dialed_cnt_1m,bank_call_dialed_cnt_3m,bank_call_dialed_cnt_6m,bank_avg_call_dialed_cnt_3m,bank_avg_call_dialed_cnt_6m,bank_call_dialed_time_1m,bank_call_dialed_time_3m,bank_call_dialed_time_6m,bank_avg_call_dialed_time_3m,bank_avg_call_dialed_time_6m,car_firm_call_cnt_1m,car_firm_call_cnt_3m,car_firm_call_cnt_6m,car_firm_avg_call_cnt_3m,car_firm_avg_call_cnt_6m,car_firm_call_time_1m,car_firm_call_time_3m,car_firm_call_time_6m,car_firm_avg_call_time_3m,car_firm_avg_call_time_6m,car_firm_call_dial_cnt_1m,car_firm_call_dial_cnt_3m,car_firm_call_dial_cnt_6m,car_firm_avg_call_dial_cnt_6m,car_firm_call_dial_time_1m,car_firm_call_dial_time_3m,car_firm_call_dial_time_6m,car_firm_avg_call_dial_time_3m,car_firm_avg_call_dial_time_6m,car_firm_call_dialed_cnt_1m,car_firm_call_dialed_cnt_3m,car_firm_call_dialed_cnt_6m,car_firm_avg_call_dialed_cnt_6m,car_firm_call_dialed_time_1m,car_firm_call_dialed_time_3m,car_firm_call_dialed_time_6m,car_firm_avg_call_dialed_time_3m,car_firm_avg_call_dialed_time_6m,carrier_call_cnt_1m,carrier_call_cnt_3m,carrier_call_cnt_6m,carrier_avg_call_cnt_3m,carrier_avg_call_cnt_6m,carrier_call_time_1m,carrier_call_time_3m,carrier_call_time_6m,carrier_avg_call_time_3m,carrier_avg_call_time_6m,carrier_call_dial_cnt_1m,carrier_call_dial_cnt_3m,carrier_call_dial_cnt_6m,carrier_avg_call_dial_cnt_3m,carrier_avg_call_dial_cnt_6m,carrier_call_dial_time_1m,carrier_call_dial_time_3m,carrier_call_dial_time_6m,carrier_avg_call_dial_time_3m,carrier_avg_call_dial_time_6m,carrier_call_dialed_cnt_1m,carrier_call_dialed_cnt_3m,carrier_call_dialed_cnt_6m,carrier_avg_call_dialed_cnt_3m,carrier_avg_call_dialed_cnt_6m,carrier_call_dialed_time_1m,carrier_call_dialed_time_3m,carrier_call_dialed_time_6m,carrier_avg_call_dialed_time_3m,carrier_avg_call_dialed_time_6m,express_call_cnt_1m,express_call_cnt_3m,express_call_cnt_6m,express_avg_call_cnt_3m,express_avg_call_cnt_6m,express_call_time_1m,express_call_time_3m,express_call_time_6m,express_avg_call_time_3m,express_avg_call_time_6m,express_call_dial_cnt_1m,express_call_dial_cnt_3m,express_call_dial_cnt_6m,express_avg_call_dial_cnt_3m,express_avg_call_dial_cnt_6m,express_call_dial_time_1m,express_call_dial_time_3m,express_call_dial_time_6m,express_avg_call_dial_time_3m,express_avg_call_dial_time_6m,express_call_dialed_cnt_1m,express_call_dialed_cnt_3m,express_call_dialed_cnt_6m,express_avg_call_dialed_cnt_3m,express_avg_call_dialed_cnt_6m,express_call_dialed_time_1m,express_call_dialed_time_3m,express_call_dialed_time_6m,express_avg_call_dialed_time_3m,express_avg_call_dialed_time_6m,ins_fin_call_cnt_1m,ins_fin_call_cnt_3m,ins_fin_call_cnt_6m,ins_fin_avg_call_cnt_3m,ins_fin_avg_call_cnt_6m,ins_fin_call_time_1m,ins_fin_call_time_3m,ins_fin_call_time_6m,ins_fin_avg_call_time_3m,ins_fin_avg_call_time_6m,ins_fin_call_dial_cnt_1m,ins_fin_call_dial_cnt_3m,ins_fin_call_dial_cnt_6m,ins_fin_avg_call_dial_cnt_3m,ins_fin_avg_call_dial_cnt_6m,ins_fin_call_dial_time_1m,ins_fin_call_dial_time_3m,ins_fin_call_dial_time_6m,ins_fin_avg_call_dial_time_3m,ins_fin_avg_call_dial_time_6m,ins_fin_call_dialed_cnt_1m,ins_fin_call_dialed_cnt_3m,ins_fin_call_dialed_cnt_6m,ins_fin_avg_call_dialed_cnt_3m,ins_fin_avg_call_dialed_cnt_6m,ins_fin_call_dialed_time_1m,ins_fin_call_dialed_time_3m,ins_fin_call_dialed_time_6m,ins_fin_avg_call_dialed_time_3m,ins_fin_avg_call_dialed_time_6m,railway_airway_call_cnt_1m,railway_airway_call_cnt_3m,railway_airway_call_cnt_6m,railway_airway_avg_call_cnt_3m,railway_airway_avg_call_cnt_6m,railway_airway_call_time_1m,railway_airway_call_time_3m,railway_airway_call_time_6m,railway_airway_avg_call_time_3m,railway_airway_avg_call_time_6m,railway_airway_call_dial_cnt_1m,railway_airway_call_dial_cnt_3m,railway_airway_call_dial_cnt_6m,railway_airway_avg_call_dial_cnt_3m,railway_airway_avg_call_dial_cnt_6m,railway_airway_call_dial_time_1m,railway_airway_call_dial_time_3m,railway_airway_call_dial_time_6m,railway_airway_avg_call_dial_time_3m,railway_airway_avg_call_dial_time_6m,railway_airway_call_dialed_cnt_1m,railway_airway_call_dialed_cnt_3m,railway_airway_call_dialed_cnt_6m,railway_airway_avg_call_dialed_cnt_3m,railway_airway_call_dialed_time_1m,railway_airway_call_dialed_time_3m,railway_airway_call_dialed_time_6m,railway_airway_avg_call_dialed_time_3m,railway_airway_avg_call_dialed_time_6m,special_service_call_cnt_1m,special_service_call_cnt_3m,special_service_call_cnt_6m,special_service_avg_call_cnt_3m,special_service_avg_call_cnt_6m,special_service_call_time_1m,special_service_call_time_3m,special_service_call_time_6m,special_service_avg_call_time_3m,special_service_avg_call_time_6m,special_service_call_dial_cnt_1m,special_service_call_dial_cnt_3m,special_service_call_dial_cnt_6m,special_service_avg_call_dial_cnt_3m,special_service_avg_call_dial_cnt_6m,special_service_call_dial_time_1m,special_service_call_dial_time_3m,special_service_call_dial_time_6m,special_service_avg_call_dial_time_3m,special_service_avg_call_dial_time_6m,special_service_call_dialed_cnt_1m,special_service_call_dialed_cnt_3m,special_service_call_dialed_cnt_6m,special_service_avg_call_dialed_cnt_3m,special_service_avg_call_dialed_cnt_6m,special_service_call_dialed_time_1m,special_service_call_dialed_time_3m,special_service_call_dialed_time_6m,special_service_avg_call_dialed_time_3m,special_service_avg_call_dialed_time_6m,night_cnt_item_1m,night_cnt_item_3m,night_cnt_item_6m,night_cnt_avg_item_3m,night_cnt_avg_item_6m,night_time_item_1m,night_time_item_3m,night_time_item_6m,night_time_avg_item_3m,night_time_avg_item_6m,cnt_10min_over_item_1m,cnt_10min_over_item_3m,cnt_10min_over_item_6m,cnt_10min_over_avg_item_3m,cnt_10min_over_avg_item_6m,cnt_5min_10min_item_1m,cnt_5min_10min_item_3m,cnt_5min_10min_item_6m,cnt_5min_10min_avg_item_3m,cnt_5min_10min_avg_item_6m,local_cnt_item_1m,local_cnt_item_3m,local_cnt_item_6m,local_cnt_avg_item_3m,local_cnt_avg_item_6m,daytime_time_item_1m,daytime_time_item_3m,daytime_time_item_6m,daytime_time_avg_item_3m,daytime_time_avg_item_6m,remote_time_item_1m,remote_time_item_3m,remote_time_item_6m,remote_time_avg_item_3m,remote_time_avg_item_6m,daytime_cnt_item_1m,daytime_cnt_item_3m,daytime_cnt_item_6m,daytime_cnt_avg_item_3m,daytime_cnt_avg_item_6m,max_single_time_item_1m,max_single_time_item_3m,max_single_time_item_6m,cnt_1min_5min_item_1m,cnt_1min_5min_item_3m,cnt_1min_5min_item_6m,cnt_1min_5min_avg_item_3m,cnt_1min_5min_avg_item_6m,remote_cnt_item_1m,remote_cnt_item_3m,remote_cnt_item_6m,remote_cnt_avg_item_3m,remote_cnt_avg_item_6m,min_single_time_item_1m,min_single_time_item_3m,min_single_time_item_6m,cnt_1min_within_item_1m,cnt_1min_within_item_3m,cnt_1min_within_item_6m,cnt_1min_within_avg_item_3m,cnt_1min_within_avg_item_6m,local_time_item_1m,local_time_item_3m,local_time_item_6m,local_time_avg_item_3m,local_time_avg_item_6m,net_fee_item_1m,net_fee_item_3m,net_fee_item_6m,net_fee_avg_item_3m,net_fee_avg_item_6m,vas_fee_item_1m,vas_fee_item_3m,vas_fee_item_6m,vas_fee_avg_item_3m,vas_fee_avg_item_6m,voice_fee_item_1m,voice_fee_item_3m,voice_fee_item_6m,voice_fee_avg_item_3m,voice_fee_avg_item_6m,extra_fee_item_1m,extra_fee_item_3m,extra_fee_item_6m,extra_fee_avg_item_3m,extra_fee_avg_item_6m,sms_fee_item_1m,sms_fee_item_3m,sms_fee_item_6m,sms_fee_avg_item_3m,sms_fee_avg_item_6m,total_fee_item_1m,total_fee_item_3m,total_fee_item_6m,total_fee_avg_item_3m,total_fee_avg_item_6m,max_single_recharge_item_1m,max_single_recharge_item_3m,max_single_recharge_item_6m,recharge_amount_item_1m,recharge_amount_item_3m,recharge_amount_item_6m,recharge_amount_avg_item_3m,recharge_amount_avg_item_6m,is_city_match_friend_city_center_3m,good_friend_num_6m,good_friend_num_3m,friend_num_3m,inter_peer_num_3m,inter_peer_num_6m,friend_num_6m,age,gender,phone_gray_score,contacts_class1_blacklist_cnt,contacts_class2_blacklist_cnt,contacts_class1_cnt,contacts_router_cnt,contacts_router_ratio,searched_org_cnt,idcard_with_other_names,idcard_with_other_phones,phone_with_other_names,phone_with_other_idcards,status,overdue_days,is_clear" + ",end_column";
        // values
        String s2 = "1498829\tb78243f0-c49c-11e8-9cb3-00163e13f173\t0\t6\t12\t2.0\t2.0\t0\t1\t2\t0.33\t0.33\t0\t2\t3\t0.67\t0.5\t281\t679\t1332\t226.33\t222.0\t30\t88\t177\t29.33\t29.5\t23\t50\t64\t16.67\t10.67\t0\t0\t0\t10695\t27102\t63241\t9034.0\t10540.0\t0\t2235790\t6724436\t745263.0\t1120739.0\t30\t53\t83\t31\t59\t91\t19.67\t15.17\t5984\t16650\t43196\t5550.0\t7199.0\t136\t337\t746\t112.33\t124.33\t230\t441\t819\t147.0\t136.5\t0\t10\t否\t否\t3\t3\t0\t否\t1\t1\t2\t1\t1\t1\t1\t1\t2\t1\t1\t1\t1\t156\t75\t6161\t52\t104\t3034\t3127\t28\t3\t1456\t25\t3\t1368\t88\t95\t29\t3309\t42\t53\t1517\t1792\t102\t14\t4772\t72\t30\t3729\t1043\t163\t55\t6822\t81\t82\t4415\t2407\t11\t1\t392\t7\t4\t246\t146\t17\t6\t958\t10\t7\t510\t448\t107\t40\t3232\t48\t59\t1831\t1401\t348\t106\t14903\t171\t177\t9390\t5513\t56\t4\t3432\t48\t8\t3182\t250\t178\t38\t6987\t88\t90\t3818\t3169\t211\t25\t13763\t137\t74\t10711\t3052\t280\t79\t13643\t152\t128\t9413\t4230\t17\t1\t552\t13\t4\t406\t146\t68\t11\t4051\t42\t26\t2422\t1629\t174\t48\t5910\t95\t79\t3854\t2056\t0\t0\t0\t0\t2\t3\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t76\t0\t13\t0\t1\t1\t0\t0\t0\t0\t76\t0\t13\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t1\t0\t0\t0\t68\t68\t23\t11\t0\t1\t1\t0\t0\t0\t68\t68\t23\t11\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t3\t10\t26\t3\t4\t261\t422\t756\t141\t126\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t3\t10\t26\t3\t4\t261\t422\t756\t141\t126\t0\t1\t1\t0\t0\t0\t147\t147\t49\t25\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t1\t0\t0\t0\t147\t147\t49\t25\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t1\t0\t0\t0\t65\t65\t22\t11\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t1\t0\t0\t0\t65\t65\t22\t11\t5\t5\t5\t1\t0\t82\t82\t82\t27\t14\t1\t1\t1\t0\t0\t10\t10\t10\t3\t2\t4\t4\t4\t1\t0\t72\t72\t72\t24\t12\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t13\t30\t55\t10.0\t9.17\t406\t1404\t2179\t468.0\t363.0\t0\t1\t5\t0.33\t0.83\t0\t3\t11\t1.0\t1.83\t0\t0\t0\t0.0\t0.0\t10289\t25698\t61062\t8566.0\t10177.0\t10695\t27102\t63241\t9034.0\t10540.0\t268\t649\t1277\t216.33\t212.83\t259\t717\t1833\t47\t109\t249\t36.33\t41.5\t281\t679\t1332\t226.33\t222.0\t1\t1\t1\t234\t566\t1067\t188.67\t177.83\t0\t0\t0\t0.0\t0.0\t0\t0\t1137\t0.0\t190.0\t0\t0\t0\t0.0\t0.0\t0\t2508\t8208\t836.0\t1368.0\t0\t0\t0\t0.0\t0.0\t0\t10\t30\t3.0\t5.0\t5549\t15667\t33924\t5222.0\t5654.0\t0\t4990\t4990\t0\t8986\t13976\t2995.0\t2329.0\t是\t6\t5\t59\t11\t17\t91\t22\t女\t100\t0\t0\t89\t0\t0.0\t14\t1\t1\t1\t1\trejected\t\t0" + "\tend_column";
        // predict value
        // 0.87823886

        String[] arr1 = s1.split(",");
        String[] arr2 = s2.split("\t");
        System.out.println(arr1.length);
        System.out.println(arr2.length);
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < arr1.length; ++i) {
            stringBuffer.append("\"" + arr1[i] + "\":\"" + arr2[i] + "\"").append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println("{" + stringBuffer.toString().replace(",endendedn", "") + "}");
        Map<String, Object> naiveFeatures = new HashMap<>();
        for (int i = 0; i < arr1.length; ++i) {
            naiveFeatures.put(arr1[i], arr2[i]);
        }

        // start
        String[] featureNameArr = getFeatureNames();

        HashMap<String, Float> hashMap = getCleanedFeatures(naiveFeatures);
        System.out.println(hashMap.toString());

        System.out.println(Arrays.toString(getFeaturesFromMap(hashMap, featureNameArr)));

        float[] cleanedFeatures = getFeaturesFromMap(hashMap, featureNameArr);

        stringBuffer = new StringBuffer();
        for (int i = 0; i < cleanedFeatures.length; ++i) {
            stringBuffer.append("\"" + featureNameArr[i] + "\":\"" + cleanedFeatures[i] + "\"").append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println("{" + stringBuffer.toString().replace(",endendedn", "") + "}");
        stringBuffer = new StringBuffer();
        for (int i = 0; i < featureNameArr.length; ++i) {
            stringBuffer.append(featureNameArr[i]).append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println(stringBuffer.toString().replace(",endendedn", ""));

        int colSize = cleanedFeatures.length;
        DMatrix matrix = new DMatrix(cleanedFeatures, 1, colSize, -9999999f);
        Booster boosterModel = XGBoost.loadModel("/Users/yootoo/workspace/osc/extpmml/extpmml/src/test/resources/fin_v8c1.model");
        float[] scoreArray = boosterModel.predict(matrix)[0];
        float score = scoreArray[0];
        System.out.println(score);
    }

    public static HashMap<String, Float> getCleanedFeatures(Map<String, Object> naiveFeatures) {
        HashMap<String, Float> hashMap = new HashMap<>(600);

        for (Map.Entry<String, Object> map : naiveFeatures.entrySet()) {
            String key = map.getKey();
            Object object = map.getValue();
            String s = object.toString();

            //
            try {
                float v = Float.parseFloat(s);
                hashMap.put(key, v);
            } catch (Exception e) {
                hashMap.put(key, -1f);
            }

            // arrearage_risk_6m
            if ("arrearage_risk_6m".equals(key)) {
                if (s.contains("月无")) {
                    hashMap.put(key, -1f);
                } else {
                    try {
                        float v = Float.parseFloat(s);
                        hashMap.put(key, v);
                    } catch (Exception e) {
                        hashMap.put(key, -1f);
                    }
                }
            }

            // arrearage_risk_3m
            if ("arrearage_risk_3m".equals(key)) {
                if (s.contains("月无")) {
                    hashMap.put(key, -1f);
                } else {
                    try {
                        float v = Float.parseFloat(s);
                        hashMap.put(key, v);
                    } catch (Exception e) {
                        hashMap.put(key, -1f);
                    }
                }
            }

            // gender
            if ("gender".equals(key)) {
                if (s.equals("男")) {
                    hashMap.put(key, 0f);
                } else if (s.equals("女")) {
                    hashMap.put(key, 1f);
                } else {
                    hashMap.put(key, -1f);
                }
            }
        }

        return hashMap;
    }

    public static float[] getFeaturesFromMap(HashMap<String, Float> hashMap, String[] featureNames) {
        float[] bars = new float[featureNames.length];
        for (int i = 0; i < featureNames.length; ++i) {
            bars[i] = hashMap.get(featureNames[i]);
        }
        return bars;
    }

    public static String[] getFeatureNames() {
        String[] arr = new String[]{
                "searched_org_cnt",
                "call_duration_detail_6m_forenoon_uniq_num_cnt",
                "net_used_item_3m",
                "max_single_time_item_3m",
                "net_used_item_6m",
                "peer_loc_cnt_item_6m",
                "age",
                "sms_cnt_item_6m",
                "sms_cnt_item_1m",
                "nuisance_call_time_6m",
                "peer_num_cnt_item_1m",
                "sms_cnt_item_3m",
                "call_duration_detail_3m_evening_dialed_time",
                "max_single_time_item_1m",
                "peer_loc_cnt_item_1m",
                "call_duration_detail_6m_afternoon_uniq_num_cnt",
                "nuisance_call_dialed_time_6m",
                "call_duration_detail_6m_morning_dialed_time",
                "total_fee_item_1m",
                "net_used_item_1m",
                "call_duration_detail_3m_forenoon_uniq_num_cnt",
                "max_single_time_item_6m",
                "call_duration_detail_3m_afternoon_uniq_num_cnt",
                "recharge_amount_item_3m",
                "night_time_item_3m",
                "call_duration_detail_3m_morning_total_time",
                "call_duration_detail_6m_evening_dial_time",
                "contacts_class2_blacklist_cnt",
                "nuisance_call_dialed_time_3m",
                "call_duration_detail_6m_evening_uniq_num_cnt",
                "call_duration_detail_3m_morning_dialed_time",
                "call_duration_detail_6m_forenoon_dialed_cnt",
                "total_fee_item_3m",
                "call_duration_detail_6m_evening_dialed_time",
                "peer_loc_cnt_item_3m",
                "call_duration_detail_3m_dusk_dialed_time",
                "sms_fee_item_6m",
                "nuisance_call_time_3m",
                "call_duration_detail_3m_evening_uniq_num_cnt",
                "nuisance_call_time_1m",
                "peer_num_cnt_item_3m",
                "call_duration_detail_3m_morning_dial_time",
                "call_duration_detail_3m_evening_dial_time",
                "good_friend_num_6m",
                "credit_card_call_time_6m",
                "night_time_item_6m",
                "peer_num_cnt_item_6m",
                "total_fee_item_6m",
                "call_duration_detail_3m_forenoon_dialed_cnt",
                "no_dial_day_item_6m",
                "call_duration_detail_6m_dusk_dial_time",
                "call_duration_detail_3m_afternoon_dialed_time",
                "call_duration_detail_6m_noon_dial_cnt",
                "call_cnt_item_1m",
                "call_duration_detail_3m_noon_dial_time",
                "call_duration_detail_6m_evening_total_time",
                "call_duration_detail_3m_evening_total_cnt",
                "inter_peer_num_6m",
                "loan_call_dialed_time_6m",
                "vas_fee_item_6m",
                "call_duration_detail_6m_morning_uniq_num_cnt",
                "no_dial_day_item_1m",
                "call_duration_detail_3m_evening_dialed_cnt",
                "phone_gray_score",
                "express_call_time_6m",
                "call_duration_detail_6m_morning_dial_time",
                "recharge_amount_item_6m",
                "call_duration_detail_6m_dusk_dialed_cnt",
                "contacts_router_cnt",
                "call_duration_detail_3m_evening_total_time",
                "call_duration_detail_6m_morning_total_time",
                "call_duration_detail_3m_dusk_total_time",
                "call_duration_detail_3m_afternoon_dialed_cnt",
                "call_duration_detail_6m_dusk_dialed_time",
                "call_duration_detail_6m_dusk_uniq_num_cnt",
                "bank_call_time_6m",
                "max_single_recharge_item_6m",
                "voice_fee_item_6m",
                "call_duration_detail_6m_evening_dial_cnt",
                "nuisance_call_dialed_cnt_3m",
                "call_duration_detail_3m_dusk_dial_time",
                "sms_fee_item_1m",
                "call_duration_detail_6m_daybreak_dial_time",
                "call_duration_detail_3m_afternoon_total_time",
                "power_off_day_item_6m",
                "call_duration_detail_6m_noon_dialed_time",
                "dial_time_item_3m",
                "call_duration_detail_3m_afternoon_dial_time",
                "call_duration_detail_3m_daybreak_dialed_time",
                "call_time_item_1m",
                "loan_call_dialed_time_3m",
                "call_duration_detail_6m_noon_dial_time",
                "call_duration_detail_3m_forenoon_dial_time",
                "express_call_dialed_time_6m",
                "call_duration_detail_6m_evening_dialed_cnt",
                "net_fee_item_6m",
                "remote_time_item_6m",
                "call_duration_detail_3m_morning_dialed_cnt",
                "call_duration_detail_3m_forenoon_dialed_time",
                "recharge_amount_item_1m",
                "call_duration_detail_6m_afternoon_dialed_cnt",
                "call_duration_detail_3m_noon_uniq_num_cnt",
                "nuisance_call_cnt_3m",
                "max_power_on_day_item_6m",
                "sms_fee_item_3m",
                "call_duration_detail_3m_noon_dialed_cnt",
                "no_call_day_item_6m",
                "call_duration_detail_6m_dusk_total_cnt",
                "call_duration_detail_3m_daybreak_dial_time",
                "no_dial_day_item_3m",
                "call_duration_detail_3m_evening_dial_cnt",
                "call_duration_detail_6m_noon_uniq_num_cnt",
                "call_duration_detail_6m_midnight_dialed_time",
                "vas_fee_item_3m",
                "call_duration_detail_6m_daybreak_dialed_time",
                "call_duration_detail_6m_daybreak_total_time",
                "call_duration_detail_3m_afternoon_dial_cnt",
                "bank_call_dial_time_6m",
                "max_single_recharge_item_3m",
                "call_duration_detail_3m_morning_uniq_num_cnt",
                "loan_call_time_1m",
                "call_duration_detail_6m_afternoon_dial_cnt",
                "night_time_item_1m",
                "call_duration_detail_6m_forenoon_dialed_time",
                "call_duration_detail_6m_afternoon_dialed_time",
                "call_duration_detail_3m_noon_total_time",
                "call_duration_detail_3m_noon_dialed_time",
                "call_duration_detail_3m_dusk_uniq_num_cnt",
                "nuisance_call_dialed_time_1m",
                "loan_call_time_3m",
                "dial_time_item_1m",
                "call_duration_detail_3m_midnight_total_time",
                "credit_card_call_dialed_time_6m",
                "credit_card_call_time_3m",
                "agency_call_time_6m",
                "extra_fee_item_6m",
                "voice_fee_item_3m",
                "call_duration_detail_6m_noon_total_cnt",
                "dial_cnt_item_1m",
                "call_duration_detail_6m_midnight_total_time",
                "night_cnt_item_6m",
                "loan_call_time_6m",
                "nuisance_call_cnt_6m",
                "net_used_avg_item_6m",
                "nuisance_call_cnt_1m",
                "call_duration_detail_6m_midnight_dial_time",
                "call_duration_detail_6m_morning_dial_cnt",
                "dial_time_item_6m",
                "remote_time_item_3m",
                "call_duration_detail_6m_dusk_dial_cnt",
                "call_duration_detail_6m_forenoon_total_time",
                "credit_card_call_time_1m",
                "call_duration_detail_6m_noon_dialed_cnt",
                "loan_call_dialed_cnt_6m",
                "cnt_1min_5min_item_6m",
                "max_single_recharge_item_1m",
                "contacts_router_ratio",
                "call_duration_detail_3m_dusk_dialed_cnt",
                "inter_peer_num_3m",
                "extra_fee_item_3m",
                "bank_call_time_1m",
                "express_call_time_3m",
                "call_duration_detail_6m_noon_total_time",
                "call_duration_detail_3m_morning_total_cnt",
                "call_duration_detail_6m_forenoon_dial_time",
                "cnt_5min_10min_item_6m",
                "max_power_on_day_item_3m",
                "loan_call_cnt_6m",
                "bank_call_dialed_time_6m",
                "call_duration_detail_3m_noon_dial_cnt",
                "nuisance_call_dial_time_6m",
                "call_duration_detail_6m_afternoon_dial_time",
                "express_call_dialed_cnt_6m",
                "vas_fee_item_1m",
                "cnt_1min_within_item_1m",
                "local_cnt_item_1m",
                "bank_call_dialed_time_3m",
                "call_duration_detail_6m_morning_dialed_cnt",
                "agency_call_dialed_time_6m",
                "call_duration_detail_3m_dusk_dial_cnt",
                "call_duration_detail_3m_afternoon_total_cnt",
                "call_cnt_item_6m",
                "express_call_dialed_time_1m",
                "ins_fin_call_time_6m",
                "night_cnt_item_3m",
                "call_duration_detail_6m_evening_total_cnt",
                "express_call_dialed_time_3m",
                "call_duration_detail_6m_afternoon_total_time",
                "sms_cnt_avg_item_6m",
                "cnt_5min_10min_item_3m",
                "ins_fin_call_dialed_time_6m",
                "contacts_class1_cnt",
                "call_duration_detail_6m_afternoon_total_cnt",
                "night_time_avg_item_6m",
                "call_duration_detail_6m_forenoon_total_cnt",
                "call_duration_detail_3m_midnight_dialed_time",
                "call_duration_detail_3m_daybreak_total_cnt",
                "call_duration_detail_6m_morning_total_cnt",
                "loan_call_dial_time_6m",
                "remote_cnt_item_6m",
                "nuisance_call_dialed_cnt_6m",
                "cnt_10min_over_item_3m",
                "express_call_dial_time_3m",
                "cnt_1min_5min_item_1m",
                "bank_call_time_3m",
                "call_duration_detail_3m_dusk_total_cnt",
                "carrier_call_time_6m",
                "dial_cnt_item_6m",
                "cnt_1min_within_item_3m",
                "call_duration_detail_3m_midnight_dial_time",
                "credit_card_call_dial_time_6m",
                "call_duration_detail_3m_forenoon_total_time",
                "credit_card_call_dialed_time_3m",
                "call_duration_detail_3m_daybreak_total_time",
                "cnt_10min_over_item_6m",
                "net_used_avg_item_3m",
                "cnt_1min_5min_item_3m",
                "local_cnt_item_6m",
                "call_duration_detail_3m_morning_dial_cnt",
                "peer_loc_cnt_avg_item_6m",
                "call_duration_detail_3m_forenoon_total_cnt",
                "carrier_call_dialed_time_3m",
                "bank_call_dialed_cnt_6m",
                "call_duration_detail_6m_forenoon_dial_cnt",
                "call_duration_detail_6m_dusk_total_time",
                "nuisance_call_dialed_cnt_1m",
                "local_time_item_1m",
                "carrier_call_time_3m",
                "local_time_item_6m",
                "call_cnt_item_3m",
                "dial_cnt_item_3m",
                "call_duration_detail_6m_daybreak_uniq_num_cnt",
                "express_call_dial_time_6m",
                "bank_call_dialed_time_1m",
                "ins_fin_call_cnt_6m",
                "call_duration_detail_6m_daybreak_total_cnt",
                "nuisance_avg_call_time_6m",
                "remote_cnt_item_3m",
                "bank_call_dial_time_1m",
                "night_cnt_item_1m",
                "loan_call_dial_time_1m",
                "express_call_cnt_6m",
                "remote_time_item_1m",
                "ins_fin_call_dialed_time_3m",
                "call_time_item_6m",
                "express_call_time_1m",
                "peer_loc_cnt_avg_item_3m",
                "call_duration_detail_3m_noon_total_cnt",
                "call_duration_detail_6m_daybreak_dialed_cnt",
                "credit_card_call_dial_time_3m",
                "call_duration_detail_3m_forenoon_dial_cnt",
                "net_fee_item_3m",
                "credit_card_call_dialed_time_1m",
                "bank_call_cnt_6m",
                "sms_fee_avg_item_6m",
                "max_power_on_day_item_1m",
                "power_off_day_item_3m",
                "remote_cnt_item_1m",
                "loan_call_dialed_time_1m",
                "voice_fee_item_1m",
                "local_cnt_item_3m",
                "call_duration_detail_3m_daybreak_dialed_cnt",
                "ins_fin_call_time_1m",
                "cnt_5min_10min_item_1m",
                "loan_call_cnt_3m",
                "credit_card_call_dialed_cnt_6m",
                "call_duration_detail_6m_midnight_total_cnt",
                "local_time_item_3m",
                "loan_call_dial_time_3m",
                "ins_fin_call_dialed_time_1m",
                "bank_call_dial_cnt_6m",
                "sms_cnt_avg_item_3m",
                "night_time_avg_item_3m",
                "agency_call_time_1m",
                "daytime_time_item_1m",
                "good_friend_num_3m",
                "credit_card_call_cnt_6m",
                "bank_call_dial_time_3m",
                "call_duration_detail_3m_midnight_dialed_cnt",
                "call_duration_detail_6m_daybreak_dial_cnt",
                "agency_call_time_3m",
                "agency_call_cnt_6m",
                "nuisance_call_dial_time_3m",
                "cnt_1min_within_item_6m",
                "express_call_cnt_3m",
                "carrier_call_dialed_time_6m",
                "agency_call_dialed_time_1m",
                "car_firm_call_dial_time_6m",
                "car_firm_call_dialed_time_6m",
                "ins_fin_call_dialed_cnt_6m",
                "call_time_item_3m",
                "ins_fin_call_time_3m",
                "ins_fin_call_dial_time_6m",
                "express_call_dialed_cnt_3m",
                "carrier_call_cnt_6m",
                "loan_call_dialed_cnt_3m",
                "agency_call_dialed_time_3m",
                "credit_card_call_dial_time_1m",
                "no_call_day_avg_item_6m",
                "extra_fee_item_1m",
                "bank_call_dial_cnt_3m",
                "no_call_day_item_3m",
                "call_duration_detail_3m_midnight_total_cnt",
                "express_call_dial_cnt_6m",
                "call_duration_detail_3m_daybreak_uniq_num_cnt",
                "total_fee_avg_item_3m",
                "ins_fin_avg_call_dialed_time_6m",
                "recharge_amount_avg_item_6m",
                "min_single_time_item_1m",
                "night_cnt_avg_item_6m",
                "bank_call_cnt_3m",
                "cnt_10min_over_item_1m",
                "credit_card_call_dial_cnt_6m",
                "no_dial_day_avg_item_6m",
                "credit_card_call_dialed_cnt_3m",
                "call_duration_detail_6m_midnight_dialed_cnt",
                "110_call_time_6m",
                "nuisance_avg_call_dialed_time_3m",
                "nuisance_avg_call_time_3m",
                "peer_num_cnt_avg_item_6m",
                "sms_fee_avg_item_3m",
                "express_avg_call_dialed_time_6m",
                "loan_call_cnt_1m",
                "car_firm_call_time_6m",
                "ins_fin_call_cnt_1m",
                "agency_call_dialed_cnt_6m",
                "total_fee_avg_item_6m",
                "continue_recharge_month_cnt_item_6m",
                "bank_avg_call_dialed_time_6m",
                "credit_card_call_cnt_3m",
                "call_duration_detail_3m_daybreak_dial_cnt",
                "bank_call_cnt_1m",
                "daytime_cnt_item_1m",
                "express_call_dialed_cnt_1m",
                "gender",
                "nuisance_avg_call_dialed_time_6m",
                "bank_call_dialed_cnt_3m",
                "peer_num_cnt_avg_item_3m",
                "nuisance_avg_call_dial_time_6m",
                "express_call_dial_time_1m",
                "power_off_day_item_1m",
                "nuisance_call_dial_cnt_6m",
                "nuisance_call_dial_time_1m",
                "no_dial_day_avg_item_3m",
                "express_call_cnt_1m",
                "express_avg_call_dial_time_6m",
                "carrier_call_dialed_time_1m",
                "loan_call_dial_cnt_6m",
                "agency_call_dial_time_6m",
                "loan_avg_call_dialed_time_6m",
                "daytime_cnt_item_6m",
                "call_duration_detail_6m_midnight_uniq_num_cnt",
                "no_call_day_item_1m",
                "net_fee_avg_item_6m",
                "vas_fee_avg_item_6m",
                "call_duration_detail_3m_midnight_dial_cnt",
                "remote_time_avg_item_6m",
                "ins_fin_call_cnt_3m",
                "continue_recharge_month_cnt_item_3m",
                "call_duration_detail_3m_midnight_uniq_num_cnt",
                "ins_fin_avg_call_time_6m",
                "voice_fee_avg_item_6m",
                "carrier_avg_call_time_6m",
                "recharge_amount_avg_item_3m",
                "call_cnt_avg_item_3m",
                "ins_fin_call_dial_time_3m",
                "car_firm_call_time_3m",
                "daytime_time_item_3m",
                "credit_card_call_cnt_1m",
                "call_duration_detail_6m_midnight_dial_cnt",
                "express_avg_call_time_6m",
                "loan_avg_call_time_6m",
                "loan_call_dial_cnt_1m",
                "loan_call_dial_cnt_3m",
                "daytime_cnt_item_3m",
                "car_firm_call_cnt_6m",
                "net_fee_avg_item_3m",
                "nuisance_call_dial_cnt_3m",
                "dial_time_avg_item_6m",
                "cnt_5min_10min_avg_item_6m",
                "car_firm_call_time_1m",
                "credit_card_avg_call_time_6m",
                "ins_fin_avg_call_dialed_time_3m",
                "agency_avg_call_time_6m",
                "power_off_day_avg_item_6m",
                "credit_card_avg_call_dial_time_3m",
                "express_call_dial_cnt_3m",
                "ins_fin_call_dial_time_1m",
                "credit_card_call_dial_cnt_1m",
                "remote_time_avg_item_3m",
                "ins_fin_avg_call_time_3m",
                "local_cnt_avg_item_6m",
                "local_cnt_avg_item_3m",
                "cnt_10min_over_avg_item_6m",
                "loan_avg_call_dial_time_3m",
                "dial_cnt_avg_item_6m",
                "110_call_time_3m",
                "fraud_call_time_6m",
                "agency_avg_call_dialed_time_6m",
                "cnt_1min_5min_avg_item_6m",
                "special_service_call_time_6m",
                "credit_card_avg_call_dialed_time_3m",
                "carrier_call_time_1m",
                "ins_fin_call_dial_cnt_6m",
                "bank_avg_call_dialed_time_3m",
                "bank_avg_call_time_3m",
                "daytime_time_item_6m",
                "agency_call_cnt_1m",
                "bank_avg_call_time_6m",
                "bank_call_dial_cnt_1m",
                "nuisance_avg_call_cnt_3m",
                "car_firm_call_dialed_cnt_6m",
                "express_avg_call_time_3m",
                "extra_fee_avg_item_6m",
                "remote_cnt_avg_item_3m",
                "car_firm_call_dial_time_3m",
                "voice_fee_avg_item_3m",
                "vas_fee_avg_item_3m",
                "night_cnt_avg_item_3m",
                "cnt_1min_5min_avg_item_3m",
                "credit_card_avg_call_dial_time_6m",
                "railway_airway_call_time_6m",
                "bank_call_dialed_cnt_1m",
                "car_firm_call_cnt_3m",
                "car_firm_avg_call_dialed_time_6m",
                "cnt_5min_10min_avg_item_3m",
                "credit_card_call_dial_cnt_3m",
                "call_cnt_avg_item_6m",
                "agency_call_cnt_3m",
                "carrier_call_dialed_cnt_3m",
                "agency_call_dial_cnt_6m",
                "continue_power_off_cnt_item_6m",
                "call_time_avg_item_3m",
                "credit_card_call_dialed_cnt_1m",
                "carrier_call_dial_cnt_6m",
                "extra_fee_avg_item_3m",
                "carrier_avg_call_dialed_time_3m",
                "credit_card_avg_call_time_3m",
                "car_firm_call_dialed_time_1m",
                "loan_call_dialed_cnt_1m",
                "friend_num_6m",
                "dial_cnt_avg_item_3m",
                "credit_card_avg_call_dialed_time_6m",
                "express_avg_call_dial_time_3m",
                "cnt_1min_within_avg_item_6m",
                "min_single_time_item_3m",
                "car_firm_avg_call_time_6m",
                "no_call_day_avg_item_3m",
                "carrier_avg_call_time_3m",
                "contacts_class1_blacklist_cnt",
                "net_fee_item_1m",
                "agency_call_dial_time_1m",
                "remote_cnt_avg_item_6m",
                "carrier_avg_call_dialed_time_6m",
                "loan_avg_call_time_3m",
                "friend_num_3m",
                "carrier_call_cnt_3m",
                "bank_avg_call_dial_time_6m",
                "nuisance_call_dial_cnt_1m",
                "ins_fin_avg_call_dial_time_3m",
                "ins_fin_call_dialed_cnt_1m",
                "nuisance_avg_call_dial_time_3m",
                "nuisance_avg_call_dialed_cnt_3m",
                "local_time_avg_item_3m",
                "bank_avg_call_dial_time_3m",
                "express_call_dial_cnt_1m",
                "local_time_avg_item_6m",
                "carrier_call_dial_time_6m",
                "car_firm_call_dialed_time_3m",
                "loan_avg_call_dial_time_6m",
                "carrier_call_cnt_1m",
                "nuisance_avg_call_cnt_6m",
                "express_avg_call_dialed_time_3m",
                "ins_fin_avg_call_dial_time_6m",
                "cnt_10min_over_avg_item_3m",
                "carrier_call_dialed_cnt_6m",
                "ins_fin_call_dialed_cnt_3m",
                "special_service_call_time_3m",
                "agency_call_dialed_cnt_1m",
                "loan_avg_call_dialed_time_3m",
                "call_time_avg_item_6m",
                "agency_avg_call_dialed_time_3m",
                "cnt_1min_within_avg_item_3m",
                "railway_airway_call_time_3m",
                "min_single_time_item_6m",
                "agency_avg_call_time_3m",
                "contact_bank_score",
                "fraud_call_dialed_time_1m",
                "carrier_call_dial_time_1m",
                "fraud_call_dialed_time_3m",
                "car_firm_call_cnt_1m",
                "fraud_call_time_3m",
                "car_firm_call_dial_time_1m",
                "agency_call_dialed_cnt_3m",
                "daytime_cnt_avg_item_6m",
                "regular_circle_score",
                "continue_recharge_month_cnt_item_1m",
                "ins_fin_call_dial_cnt_3m",
                "dial_time_avg_item_3m",
                "daytime_cnt_avg_item_3m",
                "call_day_item_1m",
                "power_off_day_avg_item_3m",
                "mobile_silence_3m",
                "unpaid_month_cnt_item_3m",
                "daytime_time_avg_item_6m",
                "agency_call_dial_time_3m",
                "car_firm_call_dial_cnt_3m",
                "daytime_time_avg_item_3m",
                "express_avg_call_cnt_6m",
                "110_call_dial_time_6m",
                "car_firm_call_dialed_cnt_3m",
                "ins_fin_call_dial_cnt_1m",
                "express_avg_call_dialed_cnt_3m",
                "continue_power_off_cnt_item_3m",
                "120_call_time_6m",
                "special_service_call_cnt_6m",
                "live_month_cnt_item_6m",
                "special_service_call_time_1m",
                "carrier_avg_call_dial_time_6m",
                "mobile_silence_6m",
                "carrier_call_dial_time_3m",
                "agency_avg_call_dial_time_6m",
                "fraud_call_cnt_6m",
                "arrearage_risk_3m",
                "loan_avg_call_dialed_cnt_3m",
                "car_firm_avg_call_dialed_time_3m",
                "110_call_cnt_6m",
                "car_firm_avg_call_time_3m",
                "110_call_cnt_3m",
                "agency_call_dial_cnt_1m",
                "railway_airway_call_dial_time_6m",
                "carrier_call_dialed_cnt_1m",
                "contact_110_score",
                "credit_card_avg_call_dial_cnt_3m",
                "live_month_cnt_item_3m",
                "car_firm_call_dial_cnt_6m",
                "collection_call_dialed_time_3m",
                "fraud_call_dialed_time_6m",
                "agency_call_dial_cnt_3m",
                "car_firm_avg_call_dial_time_3m",
                "car_firm_avg_call_dial_time_6m",
                "special_service_call_dialed_time_1m",
                "special_service_call_dial_time_6m",
                "bank_avg_call_dial_cnt_3m",
                "arrearage_risk_6m",
                "collection_call_time_6m",
                "collection_call_time_3m",
                "credit_card_avg_call_cnt_6m",
                "bank_avg_call_dial_cnt_6m",
                "bank_avg_call_cnt_3m",
                "call_day_item_6m",
                "loan_avg_call_dialed_cnt_6m",
                "special_service_avg_call_time_6m"
        };
        return arr;
    }
}
